home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok81 / m2 / defs / arts.def next >
Text File  |  1993-11-04  |  3KB  |  145 lines

  1. (*          ____________________________________
  2.  *      // /                                    \      //
  3.  *     //  \       Amiga Run Time System        /     //
  4.  * \\ //   /        4.02 / 23.02.91 / bp        \ \\ //
  5.  *  \X/    \____________________________________/  \X/
  6.  *)
  7.  
  8. DEFINITION MODULE Arts;
  9.  
  10. (*$ LargeVars:=FALSE
  11.     LongAlign:=FALSE
  12.     NameChk:=FALSE
  13.  *)
  14.  
  15. FROM SYSTEM IMPORT
  16.   ADDRESS,LONGSET,BPTR;
  17.  
  18. CONST
  19.   maxModName=32; maxKeys=3;
  20.  
  21. TYPE
  22.   (* Typ für M2Debug: Arts.StrPtr *)
  23.   StrPtr=POINTER TO ARRAY [0..63] OF CHAR;
  24.   ErrorType=
  25.    (trap,exception,system,assertion,breakPoint,explicit);
  26.   SysErr=(halt,illCase,fctReturn,stkOvl,illCall);
  27.   ErrorFrame=RECORD
  28.     pc: ADDRESS;
  29.     dRegs: ARRAY [0..7] OF LONGINT;
  30.     aRegs: ARRAY [8..15] OF ADDRESS;
  31.     CASE error: ErrorType OF
  32.     | trap: trapNr: INTEGER;
  33.     | exception: exceptionMask: LONGSET
  34.     | system: sysErr: SysErr
  35.     | assertion,breakPoint,explicit:
  36.     END;
  37.     header,body: ADDRESS
  38.   END;
  39.   ModType=(none,mod,lib,noImp);
  40.   ModKeys=ARRAY [0..maxKeys-1] OF CARDINAL;
  41.   ModName=ARRAY [0..maxModName-1] OF CHAR;
  42.  
  43. VAR
  44.  (*
  45.   *   Umgebungsvariablen von M2Amiga.
  46.   *
  47.   *   Einzig returnVal darf verändert,
  48.   *   alle anderen nur gelesen werden!!
  49.   *)
  50.  
  51.   wbStarted: BOOLEAN;
  52.  (*
  53.   *  TRUE: Start von Workbench, FALSE: Start von CLI
  54.   *)
  55.  
  56.   returnVal: LONGINT;
  57.  (*
  58.   *  Dies ist der Rückgabewert an das Dos,
  59.   *  kann beliebig gesetzt werden.
  60.   *  Bei Workbench-Start wird returnVal als INTEGER
  61.   *  in das Feld length der WBStartupMsg eingetragen.
  62.   *)
  63.  
  64.   startupMsg: ADDRESS;
  65.  (*
  66.   *  Zeiger auf die Workbench.WBStartup Message
  67.   *  Nur gültig bei Workbench-Start (wbStarted),
  68.   *  sonst NIL!
  69.   *)
  70.  
  71.   dosCmdBuf: ADDRESS;
  72.   dosCmdLen: LONGINT;
  73.  (*
  74.   *  Adresse und Länge der CLI-Argumente.
  75.   *  Nur gültig bei CLI-Start (NOT wbStarted)!
  76.   *)
  77.  
  78.   programName: ADDRESS;
  79.  (*
  80.   * Zeiger auf den Aufrufnamen des Programmes.
  81.   * Der String endet mit 0C.
  82.   *)
  83.  
  84.   thisTask:  ADDRESS;
  85.  (*
  86.   *  Zeiger auf den eigenen Task/Process
  87.   *)
  88.  
  89.   oldCurrentDir:BPTR;
  90.  (*
  91.   *  CurrentDir bei Programmstart
  92.   *)
  93.  
  94.   errorFrame: ErrorFrame;
  95.  (*
  96.   * errorFrame wird bei einem Laufzeitfehler mit den
  97.   * aktuellen Werten gefüllt.
  98.   *)
  99.  
  100.  
  101.   kickVersion: INTEGER;
  102.  (*
  103.   * Die Version der exec.library (32,33,36,...)
  104.   * Hiermit kann die Version von Kickstart,Workbench
  105.   * festgestellt werden.
  106.   *)
  107.  
  108.  (*
  109.   * Für Erweiterungen der ENTWICKLER!
  110.   * Verhindert eine ständige Neudefinition von Arts.
  111.   *)
  112.   reserved2: ADDRESS;
  113.   reserved3: ADDRESS;
  114.   reserved4: ADDRESS;
  115.  
  116. (* Diese Prozedur ist IMMER die erste jedes Programms,
  117.  * NIEMALS aufrufen!!!!
  118.  *)
  119. PROCEDURE Startup(cl{0}:LONGINT; cb{8}:ADDRESS): LONGINT;
  120.  
  121. (* Compiler Unterstützung *)
  122. PROCEDURE StkChk(need{0}: LONGINT);
  123.  (* SystemError(halt) = HALT *)
  124. PROCEDURE SystemError(err{0}: SysErr);
  125. PROCEDURE Mulu32(x{0},y{1}: LONGINT): LONGINT;
  126.  (* D0=REM, D1=QUO *)
  127. PROCEDURE Divu32(x{0},y{1}: LONGINT): LONGINT;
  128. PROCEDURE Muls32(x{0},y{1}: LONGINT): LONGINT;
  129.  (* D0=REM, D1=QUO *)
  130. PROCEDURE Divs32(x{0},y{1}: LONGINT): LONGINT;
  131. (* Nur für die "automatischen" Libraries! *)
  132. PROCEDURE OpenLib(version{0}:LONGINT;
  133.                   name{9}:ADDRESS):ADDRESS;
  134. PROCEDURE CloseLib(base{9}:ADDRESS);
  135.  
  136. (* Laufzeitunterstützung *)
  137. PROCEDURE Assert(condition: BOOLEAN; msg: ADDRESS);
  138. PROCEDURE BreakPoint(msg: ADDRESS);
  139. PROCEDURE Error(header,body: ADDRESS);
  140. PROCEDURE Requester(header,body,pos,neg:ADDRESS):BOOLEAN;
  141. PROCEDURE Terminate;
  142. PROCEDURE Exit(retVal{0}:LONGINT);
  143.  
  144. END Arts.
  145.